RCS
|
Makefile,v,
README,v,
compile.lsp,v,
config.lsp,v,
forces.scm,v,
gui-1.scm,v,
gui-2.lsp,v,
gui-2.mrd,v,
gui-2.tcl,v,
helper,v,
ncad023.scm,v,
trial,v,
|
|
|
head 1.1;
access;
symbols;
locks; strict;
comment @;; @;
1.1
date 97.03.13.17.20.34; author wware; state Exp;
branches;
next ;
desc
@@
1.1
log
@Initial revision
@
text
@;#ifdef SCHEME
;; MzScheme/MrEd configuration file for NanoCAD
;#else
;; Common Lisp configuration file for NanoCAD
;#endif
;#ifdef SCHEME
;#define DEFCONST(x,y) (define x y)
;#define TRUE #t
;#define FALSE #f
;#else
;#define DEFCONST(x,y) (defconstant x y)
;#define TRUE t
;#define FALSE nil
(defmacro define (name-args &rest body)
(cond ((listp name-args)
`(defun ,(car name-args) ,(cdr name-args) ,@@body))
(t
`(defvar ,name-args ,@@body))))
;#endif
DEFCONST(true, TRUE)
DEFCONST(false, FALSE)
;#ifdef DEBUG
DEFCONST(debugging, TRUE)
;#else
DEFCONST(debugging, FALSE)
;#endif
;#ifdef USE_MRED
DEFCONST(use-mred, TRUE)
;#else
DEFCONST(use-mred, FALSE)
;#endif
;#if defined(SCHEME)
(define-macro make-lambda (lambda (args . body) `(lambda ,args ,@@body)))
(define-macro funcall (lambda (lexp . args) `(,lexp ,@@args)))
(define-macro func (lambda (x) x))
(define-macro mapcar (lambda (f lst) `(map ,f ,lst)))
(define-macro qsort (lambda (x y) `(quicksort ,x ,y)))
(define-macro labels
(lambda (defns . body)
`(let
,(map
(lambda (x)
(list (car x) (cons 'lambda (cdr x))))
defns)
,@@body)))
(define-macro dolist
(lambda (args . body)
`(do ((local-list ,(cadr args) (cdr local-list))
(,(car args) '()))
((null? local-list))
(set! ,(car args) (car local-list))
,@@body)))
(define-macro dotimes
(lambda (args . body)
`(do ((,(car args) 0 (+ 1 ,(car args)))
(iteration-limit ,(cadr args)))
((>= ,(car args) iteration-limit))
,@@body)))
;#ifdef DEBUG
(define-macro dbgprintf
(lambda (x . y) `(printf ,x ,@@y)))
(define-macro entering
(lambda (name) `(printf "Entering ~s~%" ,name)))
;#else
(define-macro dbgprintf
(lambda (x . y) '()))
(define-macro entering
(lambda (name) '()))
;#endif
;#else /* !defined(SCHEME) */
(defconstant else t)
(defmacro list-ref (lst n) `(nth ,n ,lst))
(defmacro make-lambda (args &rest body) `#'(lambda ,args ,@@body))
(defmacro func (x) `#',x)
(defmacro real-part (x) x)
(defmacro printf (fmt &rest args) `(format t ,fmt ,@@args))
(defmacro set! (var value) `(setf ,var ,value))
(defmacro equal? (x y) `(equal ,x ,y))
(defmacro null? (x) `(null ,x))
(defmacro vector-ref (v n) `(svref ,v ,n))
(defmacro vector-set! (v n value) `(setf (svref ,v ,n) ,value))
(defmacro defined? (x) `(boundp ,x))
(defmacro qsort (x y) `(sort ,x ,y))
(defmacro eq? (x y) `(eq ,x ,y))
(defmacro fprintf (f &rest args)
`(format ,f ,@@args))
(defun make-vector (n) (make-array (list n)))
(defun open-input-file (name)
(open name))
(defun open-output-file (name)
(open name :direction :output :if-exists :supersede))
(defun close-input-port (name)
(close name))
(defun close-output-port (name)
(close name))
;#ifdef DEBUG
(defmacro dbgprintf (x &rest y)
`(format t ,x ,@@y))
(defmacro entering (name)
`(format t "Entering ~s~%" ,name))
;#else
(defmacro dbgprintf (x &rest y) nil)
(defmacro entering (name) nil)
;#endif
;#endif /* defined(SCHEME) */
@
|