1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- ; Copyright (c) 1993-2008 by Richard Kelsey and Jonathan Rees. See file COPYING.
- ; run
- (define-command-syntax 'run "<exp>" "evaluate an expression" '(expression))
- (define (run exp)
- (evaluate-and-select exp (environment-for-commands)))
- ; exit-when-done
- (define-command-syntax 'exit-when-done "[<status>]"
- "leave Scheme after all threads finish"
- '(&opt expression))
- (define (exit-when-done . exp-option)
- (let ((status (if (null? exp-option)
- 0
- (eval (car exp-option) (environment-for-commands)))))
- (terminate-command-processor! status)))
- (define-command-syntax 'exit
- "[<status>]"
- "leave Scheme now"
- '(&opt expression))
- (define (exit . exp-option)
- (let ((status (if (null? exp-option)
- 0
- (eval (car exp-option) (environment-for-commands)))))
- (scheme-exit-now status)))
- ; go
- (define-command-syntax 'go "<exp>" "leave Scheme via tail recursion"
- '(expression))
- (define (go exp)
- (let ((env (environment-for-commands)))
- (exit-command-processor (lambda () (eval exp env)))))
- ; load
- (define-command-syntax 'load "<filename> ..."
- "load Scheme source file(s)"
- '(&rest filename))
- (define (load . filenames)
- (apply really-load load-into filenames))
- (define-command-syntax 'load-script "<filename> ..."
- "load Scheme script(s)"
- '(&rest filename))
- (define (load-script . filenames)
- (apply really-load load-script-into filenames))
- (define (really-load load-into . filenames)
- (let ((env (environment-for-commands)))
- ;; (with-interaction-environment env
- ;; (lambda ()
- ((if (load-noisily?)
- (lambda (x) (x))
- silently)
- (lambda ()
- (noting-undefined-variables env
- (lambda ()
- (for-each (lambda (filename)
- (load-into filename env))
- filenames)))))));; ))
- ; help
- (define ? help)
- (define-command-syntax 'help
- "[<command-name>]"
- "list all commands, or give help on a specific command"
- '(&opt name))
- (define-command-syntax '? "[<command-name>]" "same as ,help" '(&opt name))
|